package rabbitMqLearn.mq.acquaintance;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.springframework.web.client.RestTemplate;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class MqClient {
    //一个简单的生产者
    public static void main(String[] args) throws IOException, TimeoutException {

        ConnectionFactory factory = new ConnectionFactory();

        //登录到mq
        factory.setHost("127.0.0.1");
        factory.setPort(15672);
        factory.setVirtualHost("learn");

        factory.setUsername("learner");
        factory.setPassword("learner");

        //建立信道
        Connection connection = factory.newConnection();

        //声明一个队列
        Channel channel = connection.createChannel();

        /**
         * 配置队列
         * String queue 队列名字
         * boolean durable 是否持久化 是那么在mq重启之后也不会丢失
         * boolean exclusive 石佛独占 只能有一个消费者， 并且在connection关闭是删除队列
         * boolean autoDelete 是否自动删除 在没有消费者的时候删除队列
         * Map<String, Object> arguments 额外的参数
         */
        channel.queueDeclare("learn", false, true, false, null);

        //交换机使用的是自带的就不用写
        String msg = "hello learn";
        /**
         * String exchange 交换机名字
         * String routingKey 路由名称
         * BasicProperties props 配置
         * byte[] body 发送信息
         */
        channel.basicPublish("", "learn", null, msg.getBytes());
        System.out.println(" [x] Sent '" + msg + "'");

        //释放资源
        channel.close();
        connection.close();
    }

}
